%%%-------------------------------------------------------------------
%%% File    : ebbs_app.erl
%%% Author  :  <yubao.liu@gmail.com>
%%% Description : EBBS application
%%%
%%% Created : 29 Dec 2008 by  <yubao.liu@gmail.com>
%%%-------------------------------------------------------------------
-module(ebbs_app).

-behaviour(application).

%% Application callbacks
-export([start/2, stop/1]).

%%====================================================================
%% Application callbacks
%%====================================================================
%%--------------------------------------------------------------------
%% Function: start(Type, StartArgs) -> {ok, Pid} |
%%                                     {ok, Pid, State} |
%%                                     {error, Reason}
%% Description: This function is called whenever an application 
%% is started using application:start/1,2, and should start the processes
%% of the application. If the application is structured according to the
%% OTP design principles as a supervision tree, this means starting the
%% top supervisor of the tree.
%%--------------------------------------------------------------------
start(_Type, StartArgs) ->
    mnesia:start(),
    case mnesia:table_info(schema, disc_copies) of
        [] ->
            mnesia:stop(),
            mnesia:create_schema([node()]),
            mnesia:start();
        _ -> void
    end,
    ebbs_user:init(),
    %inets:start(),
    yaws:start(),
    ebbs_sup:start_link(StartArgs).

%%--------------------------------------------------------------------
%% Function: stop(State) -> void()
%% Description: This function is called whenever an application
%% has stopped. It is intended to be the opposite of Module:start/2 and
%% should do any necessary cleaning up. The return value is ignored. 
%%--------------------------------------------------------------------
stop(_State) ->
    ok.

%%====================================================================
%% Internal functions
%%====================================================================
